package com.toonan.system.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;

import com.toonan.core.matatype.Dto;
import com.toonan.core.util.WebplusMongo;
import com.toonan.core.util.WebplusUtil;
import com.toonan.core.vo.PageResult;
import com.toonan.system.dao.ParamDao;
import com.toonan.system.model.Param;
/**
 * 
 * @ClassName:  ParamService   
 * @Description:键值参数业务逻辑
 * @author: 陈骑元（chenqiyuan@toonan.com)
 * @date:   2022年2月13日 上午10:02:42     
 * @Copyright: 2022 www.toonan.com Inc. All rights reserved. 
 * 注意：本内容仅限于广州市图南软件有限公司内部传阅，禁止外泄以及用于其他的商业目
 */
@Service
public class ParamService {
  
	@Autowired
	private ParamDao paramDao;
	
	/**
	 * 
	 * 简要说明：插入键值参数
	 * 编写者：陈骑元（chenqiyuan@toonan.com）
	 * 创建时间： 2022年2月15日 下午10:44:33 
	 * @param 说明
	 * @return 说明
	 */
	public boolean insert(Param param) {
		
		Param paramDb=  paramDao.insert(param);
		if(WebplusUtil.isNotEmpty(paramDb.getParamId())) {
			return true;
		}
		return false;
	}
	
	
	
	/**
	 * 
	 * 简要说明：获取有效的参数健
	 * 编写者：陈骑元（chenqiyuan@toonan.com）
	 * 创建时间： 2022年2月13日 上午9:25:13 
	 * @param 说明
	 * @return 说明
	 */
	public Param selectByParamKey(String paramKey) {
		
		
		return paramDao.selectByParamKey(paramKey);
	}
	
	/**
	 * 
	 * 简要说明：检查参数健的唯一性
	 * 编写者：陈骑元（chenqiyuan@toonan.com）
	 * 创建时间： 2022年2月13日 上午10:08:08 
	 * @param 说明 paramKey 参数健
	 * @return 说明
	 */
	public boolean checkParamKeyUnion(String paramKey) {
		
		return paramDao.selectCountByParamKey(paramKey)>0;
	}
    /**
     * 
     * 简要说明：通过参数编号进行删除，删除成功返回true，失败返回false
     * 编写者：陈骑元（chenqiyuan@toonan.com）
     * 创建时间： 2022年2月13日 上午9:34:08 
     * @param 说明 paramId 参数编号
     * @return 说明
     */
    public boolean removeId(String paramId) {
    	
    	return paramDao.removeById(paramId);
    }
    
    /**
     * 
     * 简要说明：分页查询键值参数信息
     * 编写者：陈骑元（chenqiyuan@toonan.com）
     * 创建时间： 2022年2月13日 上午11:01:55 
     * @param 说明
     * @return 说明
     */
    public PageResult findPage(Dto pDto) {
    	Query query=new Query();
    	WebplusMongo.like(query,"paramKey",pDto);
    	WebplusMongo.like(query,"paramName", pDto);
    	WebplusMongo.eq(query,"paramType", pDto);
    	WebplusMongo.withSortDesc(query, "createTime");
    	PageResult pageResult=new PageResult(pDto);
    	
        return paramDao.findPage(query, pageResult); 	
    }
    /**
     * 
     * 简要说明：根据id查询当前
     * 编写者：陈骑元（chenqiyuan@toonan.com）
     * 创建时间： 2022年2月16日 下午11:36:17 
     * @param 说明
     * @return 说明
     */
    public Param selectById(String paramId) {
    	
    	return paramDao.findById(paramId);
    }
    /**
     * 
     * 简要说明：更新对象
     * 编写者：陈骑元（chenqiyuan@toonan.com）
     * 创建时间： 2022年2月17日 下午10:21:31 
     * @param 说明
     * @return 说明
     */
    public boolean updateById(Param param) {
    	
    	return paramDao.updateById(param);
    }
}
